package com.ruoyi.personnel.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import com.ruoyi.common.annotation.Excel;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import java.util.HashMap;
import java.math.BigDecimal;

/**
 * 科研著作对象 research_book
 *
 * @author ruoyi
 * @date 2021-03-02
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("research_book")
public class ResearchBook implements Serializable {

private static final long serialVersionUID=1L;


    /** 科研著作id */
    @TableId(value = "id", type = IdType.ID_WORKER_STR)
    private String id;

    /** 主编姓名 */
    @Excel(name = "主编姓名")
    private String chiefEditor;

    /** 主编工号 */
    @Excel(name = "主编工号")
    private String chiefNumber;

    /** 主编人员基本信息id */
    @Excel(name = "主编人员基本信息id")
    private String chiefPersonnelId;

    /** 编者姓名 */
    @Excel(name = "编者姓名")
    private String compilerEditor;

    /** 编者工号 */
    @Excel(name = "编者工号")
    private String compilerNumber;

    /** 编者人员基本信息id */
    @Excel(name = "编者人员基本信息id")
    private String compilerPersonnelId;

    /** 著作名称 */
    @Excel(name = "著作名称")
    private String bookName;

    /** 著作类别 */
    @Excel(name = "著作类别")
    private String bookType;

    /** 出版单位 */
    @Excel(name = "出版单位")
    private String publishUnit;

    /** 出版日期 */
    @Excel(name = "出版日期")
    private String publishDate;

    /** 著作字数 */
    @Excel(name = "著作字数")
    private String bookWords;

    /** 附件 */
    @Excel(name = "附件")
    private String enclosure;

    /** 附件名称 */
    @Excel(name = "附件名称")
    private String enclosureName;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态" , readConverterExp = "0=正常,1=停用")
    private String status;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date createTime;

    /** 更新时间 */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /** 删除标志（0代表存在 2代表删除） */
    @TableLogic
    private String delFlag;

    @TableField(exist = false)
    private Map<String, Object> params = new HashMap<>();
}
